﻿using System;

namespace SharpGym.Model
{
    public partial class AvaliacaoFisica
    {
        public double IMC
        {
            get { return Peso/(Estatura*Estatura); }
        }

        public double RCQ
        {
            get { return AbdominalP/PelveP; }
        }

        public double PorcentagemGordura
        {
            get { return (TricepsDC + EscapularDC + SupraIliacaDC + AbdominalDC)*0.153 + 5.783; }
        }

        public double PorcentagemLivreGordura
        {
            get { return 100 - PorcentagemGordura; }
        }

        public double PesoGordura
        {
            get { return Peso*PorcentagemGordura/100; }
        }

        public double PesoMagro
        {
            get { return Peso*PorcentagemLivreGordura/100; }
        }

        public double PorcentagemIdealGordura(DateTime Nascimento)
        {
            return 12 + (((DateTime.Today - Nascimento).TotalDays/365) - 30)*0.2;
        }

        public double PorcentagemGorduraSobra(DateTime Nascimento)
        {
            return PorcentagemGordura - PorcentagemIdealGordura(Nascimento);
        }

        public double PesoIdeal(DateTime Nascimento)
        {
            return (Peso*(PorcentagemLivreGordura/100))/(1 - (PorcentagemIdealGordura(Nascimento)/100));
        }
    }
}